# kinds                                                               -*- sh -*-
#
# For documentation on this file format, please refer to
# src/theory/builtin/kinds.
#

theory THEORY_SEP ::cvc5::internal::theory::sep::TheorySep "theory/sep/theory_sep.h"
typechecker "theory/sep/theory_sep_type_rules.h"

properties polite stable-infinite parametric
properties check presolve

rewriter ::cvc5::internal::theory::sep::TheorySepRewriter "theory/sep/theory_sep_rewriter.h"

nullaryoperator SEP_NIL "separation nil"

nullaryoperator SEP_EMP "separation logic empty heap constraint"
operator SEP_PTO 2 "points to relation"
operator SEP_STAR 2: "separation star"
operator SEP_WAND 2 "separation magic wand"
operator SEP_LABEL 2 "separation label (internal use only)"

typerule SEP_EMP ::cvc5::internal::theory::sep::SepEmpTypeRule
typerule SEP_PTO ::cvc5::internal::theory::sep::SepPtoTypeRule
typerule SEP_STAR ::cvc5::internal::theory::sep::SepStarTypeRule
typerule SEP_WAND ::cvc5::internal::theory::sep::SepWandTypeRule
typerule SEP_LABEL ::cvc5::internal::theory::sep::SepLabelTypeRule
typerule SEP_NIL ::cvc5::internal::theory::sep::SepNilTypeRule

endtheory
